package com.delio.client.produccion.estadodetallepedidos;

import java.util.List;

import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ListLoader;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class EstadoDetallePedidos {
	private static EstadoDetallePedidoServiceAsync edps = GWT.create(EstadoDetallePedidoService.class);
	//public static ListStore<BeanModel> store;
	public static ListStore<ModelData> store;
	public static ListLoader<ListLoadResult<ModelData>> loader;

    
    public static void listarestadodetallepedidos(){
      RpcProxy<List<EstadoDetallePedido>> proxy = new RpcProxy<List<EstadoDetallePedido>>(){
    		protected void load(Object loadConfig, AsyncCallback<List<EstadoDetallePedido>> callback){
    		    edps.ListarEstadoDetallePedidos(callback);
    		 }
    		};
    	  	loader = new BaseListLoader<ListLoadResult<ModelData>>(proxy, new BeanModelReader());  
    	    store = new ListStore<ModelData>(loader);	
      
    }
    
	public static void guardar(final EstadoDetallePedido edp){
	 edps.guardar(edp, new AsyncCallback<Boolean>(){

		@Override
		public void onFailure(Throwable caught) {
			MessageBox.alert("Error", "No pudo guardar", null);			
		}

		@Override
		public void onSuccess(Boolean result) {
           if(result){
           	   MessageBox.alert("Guardado", "Se guardo Correctamente", null);     	   
          }else{
        	MessageBox.alert("Error", "No se guardo correctamente", null);
           }
		}
	 });
   }
  
	public static void actualizar(EstadoDetallePedido edp){
	 edps.actualizar(edp, new AsyncCallback<Boolean>(){

	   @Override
	   public void onFailure(Throwable caught) {
		   MessageBox.alert("Error", "Error en la acutalizacion", null);	 
	   }	
		 
	   public void onSuccess(Boolean result){
		 if(result){
		   MessageBox.alert("Actualizado","Se actualizo Correctamente", null);
		 }else{
		   MessageBox.alert("Error", "No se actualizo Correctamente", null);	 
		 }
		}

	 });
 }
 
 public static void eliminar(Integer id){
     edps.eliminar(id, new AsyncCallback<Boolean>(){
		
		 @Override
		 public void onFailure(Throwable caught){
			 MessageBox.alert("Error", "Error en la Eliminacion", null);
		 }
		 
		 public void onSuccess(Boolean result){
			 if(result){
			   MessageBox.alert("Eliminado","Se elimino Correctamente", null); 
			 }else{
			   MessageBox.alert("Error", "No se elimino Correctamente", null);	 
			 } 
		 }

	 });
  }
 }
